#ifndef TRANSFORM_GEOMETRY_H
#define TRANSFORM_GEOMETRY_H

#include <glad/glad.h>
#include <glm/glm.hpp>
#include <vector>


class Geometry
{
protected:
	struct Vertex
	{
		glm::vec3 Position;  // 顶点位置
		glm::vec2 TexCoords; // 纹理坐标
	};
	using uint=unsigned int;
public:
	const uint vao()const;
	const uint  vertexCount()const;
	virtual ~Geometry();
protected:
	Geometry()noexcept;
	void setup();
	void destroy();
	virtual void makeData()=0;
protected:
	uint VAO;
	uint VBO;
	uint EBO;
	std::vector<Vertex> vertices;
	std::vector<uint> indices;
};


#endif //TRANSFORM_GEOMETRY_H
